package com.jason.annotation.testandreflt;

import java.lang.reflect.Method;

/**
 *
 * 通过反射来运行该测试方法
 * @Author: Jason
 * @Date: 16/6/8
 * @Time: 11:52
 */
public class ProcessorTest {

    public static void process(String clazz) throws ClassNotFoundException {

        int passed = 0;
        int failed = 0;

        // 遍历clazz对应的类里的所有方法
        for (Method m : Class.forName(clazz).getMethods()) {

            // 如果该方法使用了@Testable修饰
            if (m.isAnnotationPresent(Testable.class)) {
                try {
                    // 调用m方法
                    m.invoke(null);
                    // 测试成功
                    passed++;

                } catch (Exception e) {
                    e.printStackTrace();
                    System.out.println("方法---" + m + "运行失败,异常:" + e.getCause());
                    failed++;
                }
            }

        }

        System.out.println("共运行了:" + (passed + failed) + "个方法,其中:\n" + "失败了:" + failed + "个,\n"
                + "成功了:" + passed + "个!");



    }

}
